(font_parse_xlfd): Check DPI and AVGWIDTH properties more rigidly.
authorKenichi Handa <handa@m17n.org>
Tue, 28 Jul 2009 02:07:54 +0000 (02:07 +0000)
committerKenichi Handa <handa@m17n.org>
Tue, 28 Jul 2009 02:07:54 +0000 (02:07 +0000)
src/font.c

index d2cd1febe9355d0fb1011f45b849ea1262a2ae5d..cfc48523d12ba3cfdb83ef4c2ffd155ff234498f 100644 (file)
@@ -1139,7 +1139,10 @@ font_parse_xlfd (name, font)
            }
        }
 
-      ASET (font, FONT_DPI_INDEX, INTERN_FIELD (XLFD_RESY_INDEX));
+      val = INTERN_FIELD (XLFD_RESY_INDEX);
+      if (! NILP (val) && ! INTEGERP (val))
+       return -1;
+      ASET (font, FONT_DPI_INDEX, val);
       val = INTERN_FIELD (XLFD_SPACING_INDEX);
       if (! NILP (val))
        {
@@ -1151,8 +1154,10 @@ font_parse_xlfd (name, font)
       p = f[XLFD_AVGWIDTH_INDEX];
       if (*p == '~')
        p++;
-      ASET (font, FONT_AVGWIDTH_INDEX,
-           font_intern_prop (p, f[XLFD_REGISTRY_INDEX] - 1 - p, 0));
+      val = font_intern_prop (p, f[XLFD_REGISTRY_INDEX] - 1 - p, 0);
+      if (! NILP (val) && ! INTEGERP (val))
+       return -1;
+      ASET (font, FONT_AVGWIDTH_INDEX, val);
     }
   else
     {